/*
 * Copyright (c) gitee.com/jiandong001.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

import { YogaNodeNAPIBase } from './YogaNodeNAPIBase';
import { YogaLogger } from './YogaLogger';
//import { SoLoader } from '../react/soloader/SoLoader';

//import com.facebook.proguard.annotations.DoNotStrip;
//import com.facebook.soloader.SoLoader;

//@DoNotStrip
export class YogaNative {
//  public static {
//    SoLoader.loadLibrary("yoga"): void { }
//  }

  constructor() {
//    SoLoader.loadLibrary("yoga");
  }
  
  // NAPI methods that use Vanilla NAPI
  // YGConfig related
  public static/* native long*/ napi_YGConfigNewNAPI(): number { return 0 }
  public static/* native void*/ napi_YGConfigFreeNAPI(nativePointer: number): void { }
  public static/* native void*/ napi_YGConfigSetExperimentalFeatureEnabledNAPI(nativePointer: number, feature: number, enabled: boolean): void { }
  public static/* native void*/ napi_YGConfigSetUseWebDefaultsNAPI(nativePointer: number, useWebDefaults: boolean): void { }
  public static/* native void*/ napi_YGConfigSetPrintTreeFlagNAPI(nativePointer: number, enable: boolean): void { }
  public static/* native void*/ napi_YGConfigSetPointScaleFactorNAPI(nativePointer: number, pixelsInPoint: number): void { }
  public static/* native void*/ napi_YGConfigSetUseLegacyStretchBehaviourNAPI(nativePointer: number, useLegacyStretchBehaviour: boolean): void { }
  public static/* native void*/ napi_YGConfigSetShouldDiffLayoutWithoutLegacyStretchBehaviourNAPI(nativePointer: number, shouldDiffLayoutWithoutLegacyStretchBehaviour: boolean): void { }
  public static/* native void*/ napi_YGConfigSetLoggerNAPI(nativePointer: number, logger: YogaLogger): void { }

  // YGNode related
  public static/* native long*/ napi_YGNodeNewNAPI(): number { return 0 }
  public static/* native long*/ napi_YGNodeNewWithConfigNAPI(configPointer: number): number { return 0 }
  public static/* native void*/ napi_YGNodeFreeNAPI(nativePointer: number): void { }
  public static/* native void*/ napi_YGNodeResetNAPI(nativePointer: number): void { }
  public static/* native void*/ napi_YGNodeInsertChildNAPI(nativePointer: number, childPointer: number, index: number): void { }
  public static/* native void*/ napi_YGNodeSwapChildNAPI(nativePointer: number, childPointer: number, index: number): void { }
  public static/* native void*/ napi_YGNodeSetIsReferenceBaselineNAPI(nativePointer: number, isReferenceBaseline: boolean): void { }
  public static /* native boolean*/ napi_YGNodeIsReferenceBaselineNAPI(nativePointer: number): boolean { return false }
  public static/* native void*/ napi_YGNodeClearChildrenNAPI(nativePointer: number): void { }
  public static/* native void*/ napi_YGNodeRemoveChildNAPI(nativePointer: number, childPointer: number): void { }
  public static/* native void*/ napi_YGNodeCalculateLayoutNAPI(nativePointer: number, width: number, height: number, nativePointers: number[], nodes: YogaNodeNAPIBase[] ): void { }
  public static/* native void*/ napi_YGNodeMarkDirtyNAPI(nativePointer: number): void { }
  public static/* native void*/ napi_YGNodeMarkDirtyAndPropogateToDescendantsNAPI(nativePointer: number): void { }
  public static /* native boolean*/ napi_YGNodeIsDirtyNAPI(nativePointer: number): boolean { return false }
  public static/* native void*/ napi_YGNodeCopyStyleNAPI(dstNativePointer: number, srcNativePointer: number): void { }
  public static /* native int*/ napi_YGNodeStyleGetDirectionNAPI(nativePointer: number): number { return 0 }
  public static/* native void*/ napi_YGNodeStyleSetDirectionNAPI(nativePointer: number, direction): void { }
  public static /* native int*/ napi_YGNodeStyleGetFlexDirectionNAPI(nativePointer: number): number { return 0 }
  public static/* native void*/ napi_YGNodeStyleSetFlexDirectionNAPI(nativePointer: number, flexDirection: number): void { }
  public static /* native int*/ napi_YGNodeStyleGetJustifyContentNAPI(nativePointer: number): number { return 0 }
  public static/* native void*/ napi_YGNodeStyleSetJustifyContentNAPI(nativePointer: number, justifyContent): void { }
  public static /* native int*/ napi_YGNodeStyleGetAlignItemsNAPI(nativePointer: number): number { return 0 }
  public static/* native void*/ napi_YGNodeStyleSetAlignItemsNAPI(nativePointer: number, alignItems: number): void { }
  public static /* native int*/ napi_YGNodeStyleGetAlignSelfNAPI(nativePointer: number): number { return 0 }
  public static/* native void*/ napi_YGNodeStyleSetAlignSelfNAPI(nativePointer: number, alignSelf: number): void { }
  public static /* native int*/ napi_YGNodeStyleGetAlignContentNAPI(nativePointer: number): number { return 0 }
  public static/* native void*/ napi_YGNodeStyleSetAlignContentNAPI(nativePointer: number, alignContent: number): void { }
  public static /* native int*/ napi_YGNodeStyleGetPositionTypeNAPI(nativePointer: number): number { return 0 }
  public static/* native void*/ napi_YGNodeStyleSetPositionTypeNAPI(nativePointer: number, positionType: number): void { }
  public static /* native int*/ napi_YGNodeStyleGetFlexWrapNAPI(nativePointer: number): number { return 0 }
  public static/* native void*/ napi_YGNodeStyleSetFlexWrapNAPI(nativePointer: number, wrapType: number): void { }
  public static /* native int*/ napi_YGNodeStyleGetOverflowNAPI(nativePointer: number): number { return 0 }
  public static/* native void*/ napi_YGNodeStyleSetOverflowNAPI(nativePointer: number, overflow: number): void { }
  public static /* native int*/ napi_YGNodeStyleGetDisplayNAPI(nativePointer: number): number { return 0 }
  public static/* native void*/ napi_YGNodeStyleSetDisplayNAPI(nativePointer: number, display: number): void { }
  public static/* native float*/ napi_YGNodeStyleGetFlexNAPI(nativePointer: number): number { return 0 }
  public static/* native void*/ napi_YGNodeStyleSetFlexNAPI(nativePointer: number, flex: number): void { }
  public static/* native float*/ napi_YGNodeStyleGetFlexGrowNAPI(nativePointer: number): number { return 0 }
  public static/* native void*/ napi_YGNodeStyleSetFlexGrowNAPI(nativePointer: number, flexGrow: number): void { }
  public static/* native float*/ napi_YGNodeStyleGetFlexShrinkNAPI(nativePointer: number): number { return 0 }
  public static/* native void*/ napi_YGNodeStyleSetFlexShrinkNAPI(nativePointer: number, flexShrink: number): void { }
  public static/* native long*/ napi_YGNodeStyleGetFlexBasisNAPI(nativePointer: number): number { return 0 }
  public static/* native void*/ napi_YGNodeStyleSetFlexBasisNAPI(nativePointer: number, flexBasis: number): void { }
  public static/* native void*/ napi_YGNodeStyleSetFlexBasisPercentNAPI(nativePointer: number, percent: number): void { }
  public static/* native void*/ napi_YGNodeStyleSetFlexBasisAutoNAPI(nativePointer: number): void { }
  public static/* native long*/ napi_YGNodeStyleGetMarginNAPI(nativePointer: number, edge: number): number { return 0 }
  public static/* native void*/ napi_YGNodeStyleSetMarginNAPI(nativePointer: number, edge: number, margin: number): void { }
  public static/* native void*/ napi_YGNodeStyleSetMarginPercentNAPI(nativePointer: number, edge: number, percent: number): void { }
  public static/* native void*/ napi_YGNodeStyleSetMarginAutoNAPI(nativePointer: number, edge: number): void { }
  public static/* native long*/ napi_YGNodeStyleGetPaddingNAPI(nativePointer: number, edge: number): number { return 0 } //long
  public static/* native void*/ napi_YGNodeStyleSetPaddingNAPI(nativePointer: number, edge: number, padding: number): void { }
  public static/* native void*/ napi_YGNodeStyleSetPaddingPercentNAPI(nativePointer: number, edge: number, percent: number): void { }
  public static/* native float*/ napi_YGNodeStyleGetBorderNAPI(nativePointer: number, edge: number): number { return 0 }
  public static/* native void*/ napi_YGNodeStyleSetBorderNAPI(nativePointer: number, edge: number, border: number): void { }
  public static/* native long*/ napi_YGNodeStyleGetPositionNAPI(nativePointer: number, edge: number): number { return 0 }
  public static/* native void*/ napi_YGNodeStyleSetPositionNAPI(nativePointer: number, edge: number, position: number): void { }
  public static/* native void*/ napi_YGNodeStyleSetPositionPercentNAPI(nativePointer: number, edge: number, percent: number): void { }
  public static/* native long*/ napi_YGNodeStyleGetWidthNAPI(nativePointer: number): number { return 0 }
  public static/* native void*/ napi_YGNodeStyleSetWidthNAPI(nativePointer: number, width: number): void { }
  public static/* native void*/ napi_YGNodeStyleSetWidthPercentNAPI(nativePointer: number, percent: number): void { }
  public static/* native void*/ napi_YGNodeStyleSetWidthAutoNAPI(nativePointer: number): void { }
  public static/* native long*/ napi_YGNodeStyleGetHeightNAPI(nativePointer: number): number { return 0 }
  public static/* native void*/ napi_YGNodeStyleSetHeightNAPI(nativePointer: number, height: number): void { }
  public static/* native void*/ napi_YGNodeStyleSetHeightPercentNAPI(nativePointer: number, percent: number): void { }
  public static/* native void*/ napi_YGNodeStyleSetHeightAutoNAPI(nativePointer: number): void { }
  public static/* native long*/ napi_YGNodeStyleGetMinWidthNAPI(nativePointer: number): number { return 0 }
  public static/* native void*/ napi_YGNodeStyleSetMinWidthNAPI(nativePointer: number, minWidth: number): void { }
  public static/* native void*/ napi_YGNodeStyleSetMinWidthPercentNAPI(nativePointer: number, percent: number): void { }
  public static/* native long*/ napi_YGNodeStyleGetMinHeightNAPI(nativePointer: number): number { return 0 }
  public static/* native void*/ napi_YGNodeStyleSetMinHeightNAPI(nativePointer: number, minHeight: number): void { }
  public static/* native void*/ napi_YGNodeStyleSetMinHeightPercentNAPI(nativePointer: number, percent: number): void { }
  public static/* native long*/ napi_YGNodeStyleGetMaxWidthNAPI(nativePointer: number): number { return 0 }
  public static/* native void*/ napi_YGNodeStyleSetMaxWidthNAPI(nativePointer: number, maxWidth: number): void { }
  public static/* native void*/ napi_YGNodeStyleSetMaxWidthPercentNAPI(nativePointer: number, percent: number): void { }
  public static/* native long*/ napi_YGNodeStyleGetMaxHeightNAPI(nativePointer: number): number { return 0 }
  public static/* native void*/ napi_YGNodeStyleSetMaxHeightNAPI(nativePointer: number, maxheight: number): void { }
  public static/* native void*/ napi_YGNodeStyleSetMaxHeightPercentNAPI(nativePointer: number, percent: number): void { }
  public static/*native float*/ napi_YGNodeStyleGetAspectRatioNAPI(nativePointer: number): number { return 0 }
  public static/* native void*/ napi_YGNodeStyleSetAspectRatioNAPI(nativePointer: number, aspectRatio: number): void { }
  public static/* native void*/ napi_YGNodeSetHasMeasureFuncNAPI(nativePointer: number, hasMeasureFunc: boolean): void { }
  public static/* native void*/ napi_YGNodeSetHasBaselineFuncNAPI(nativePointer: number, hasMeasureFunc: boolean): void { }
  public static/* native void*/ napi_YGNodePrintNAPI(nativePointer: number): void { }
  public static/* native void*/ napi_YGNodeSetStyleInputsNAPI(nativePointer: number, styleInputsArray: number[], size: number): void { }
  public static/* native long*/ napi_YGNodeCloneNAPI(nativePointer: number): number { return 0 }
}
